home *** CD-ROM | disk | FTP | other *** search
- # feed this into perl
- eval 'exec perl -S $0 ${1+"$@"}'
- if $running_under_some_shell;
-
- # Usage: rofftoc PerlTOC.xxx.raw
- #
- # Post-processes roffitall output. Called from roffitall to produce
- # a formatted table of contents.
- #
- # Author: Tom Christiansen
-
- print <<'EOF';
- .de NP
- '.sp 0.8i
- .tl ''- % -''
- 'bp
- 'sp 0.5i
- .tl ''\fB\s+2Perl Table of Contents\s0\fR''
- 'sp 0.3i
- ..
- .wh -1i NP
- .af % i
- .sp 0.5i
- .tl ''\fB\s+5Perl Table of Contents\s0\fR''
- .sp 0.5i
- .nf
- .na
- EOF
- while (<>) {
- #chomp;
- s/Index://;
- ($type, $page, $desc) = split ' ', $_, 3;
- $desc =~ s/^"(.*)"$/$1/;
- if ($type eq 'Title') {
- ($name = $desc) =~ s/ .*//;
- next;
- } elsif ($type eq 'Name') {
- #print STDERR $page, "\t", $desc;
- print ".ne 5\n";
- print ".in 0\n";
- print ".sp\n";
- print ".ft B\n";
- print "$desc\n";
- print ".ft P\n";
- print ".in 5n\n";
- } elsif ($type eq 'Header') {
- print ".br\n", $page, "\t", $desc;
- } elsif ($type eq 'Subsection') {
- print ".br\n", $page, "\t\t", $desc;
- } elsif ($type eq 'Item') {
- next if $desc =~ /\\bu/;
- next unless $name =~ /POSIX|func/i;
- print ".br\n", $page, "\t\t\t", $desc;
- }
- }
- __END__
- Index:Title 1 "PERL 1"
- Index:Name 1 "perl - Practical Extraction and Report Language"
- Index:Header 1 "NAME"
- Index:Header 1 "SYNOPSIS"
- Index:Header 2 "DESCRIPTION"
- Index:Item 2 "\(bu Many usability enhancements"
- Index:Item 2 "\(bu Simplified grammar"
- Index:Item 2 "\(bu Lexical scoping"
- Index:Item 2 "\(bu Arbitrarily nested data structures"
- Index:Item 2 "\(bu Modularity and reusability"
-